package com.wyix.entity;

import java.util.UUID;

/**
 * 先创建SmartPhone类，用构造方法初始化核心属性
 *
 * @author wangdx
 * @since 2025/8/1
 */
public class SmartPhone extends ElectronicProduct {
    // 核心属性（所有手机必须具备）
    private String brand;  // 品牌（如"小米"）
    private String model;  // 型号（如"14 Ultra"）
    // 扩展属性（部分手机具备）
    private double price;  // 价格（单位：元）
    private String productionDate;  // 生产日期（格式：yyyy-MM-dd）
    private boolean support5G;  // 是否支持5G

    // 【子类构造方法必须调用父类构造】
    public SmartPhone(String productId, String brand, String model) {
        super(productId);  // 调用父类构造方法初始化产品编号（必须在第一行）
        this.brand = brand;
        this.model = model;
        this.productionDate = getCurrentDate();
        this.support5G = true;
    }


    // 【构造方法2：中端款手机（增加价格参数）】
    public SmartPhone(String productId, String brand, String model, double price) {
        // 复用入门款构造方法的逻辑（品牌、型号、默认日期和5G）
        this(productId, brand, model);
        this.price = price;  // 补充价格属性
    }

    // 【构造方法3：旗舰款手机（全参数初始化）】
    public SmartPhone(String productId, String brand, String model, double price, String productionDate, boolean support5G) {
        super(productId);
        this.brand = brand;
        this.model = model;
        this.price = price;
        this.productionDate = productionDate;  // 自定义生产日期
        this.support5G = support5G;  // 自定义5G支持
    }

    // 工具方法：获取当前日期（封装为私有辅助逻辑）
    private String getCurrentDate() {
        // 简化实现：实际项目中可用LocalDate
        return "2023-12-01";
    }

    // 打印手机信息（方便查看初始化结果）
    public void printInfo() {
        System.out.println("产品编号：" + getProductId() + "\n品牌：" + brand +
                "\n型号：" + model + "\n价格：" + price + "元");
    }
}
